home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / ifl / iflListIter.z / iflListIter
Encoding:
Text File  |  1998-10-20  |  6.9 KB  |  198 lines

  1.  
  2.  
  3.  
  4. iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr,,,, iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrrRRRReeeevvvv,,,, iiiiffffllllMMMMuuuullllttttiiiiLLLLiiiissssttttIIIItttteeeerrrr,,,, iiiiffffllllMMMMuuuullllttttiiiiLLLLiiiissssttttIIIItttteeeerrrrRRRReeeevvvv -
  10.      iterators for iflList and iflMultiList
  11.  
  12. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  13.      This is a base class.
  14.  
  15. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  16.      #include <ifl/iflList.h>
  17.  
  18. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      ifl[Multi]ListIter and ifl[Multi]ListIterRev provide lightweight
  20.      iterators for doubly-linked lists derived from iflList or iflMultiList.
  21.  
  22.      UUUUssssiiiinnnngggg iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr
  23.      Say you have built a list of some sort of item:
  24.  
  25.           iflList<someItem> list;
  26.           for (int i = 0; i < 10; i++)
  27.               list.append(new someItem(i));
  28.  
  29.  
  30.      You can iterate through the items from the head to the tail by doing:
  31.  
  32.           iflListIter<someItem> iter(list);
  33.           someItem* item;
  34.           while (item = iter.next()) {
  35.               // do something with item (and possibly unlink/delete it)
  36.           }
  37.  
  38.  
  39.      Alternatively, you can iterate backwards, from the tail to the head with:
  40.  
  41.           iflListIterRev<someItem> iter(list);
  42.           someItem* item;
  43.           while (item = iter.next()) {
  44.               // do something with item (and possibly unlink/delete it)
  45.           }
  46.  
  47.  
  48. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  49.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
  50.  
  51.           iflListIter<I>(const iflList<I>* list)
  52.           iflListIter<I>(const iflList<I>& list)
  53.  
  54.           iflListIterRev<I>(const iflList<I>* list)
  55.           iflListIterRev<I>(const iflList<I>& list)
  56.  
  57.           iflMultiListIter<I,L>(const iflMultiList<I,L>* list)
  58.           iflMultiListIter<I,L>(const iflMultiList<I,L>& list)
  59.  
  60.  
  61.                                                                         PPPPaaaaggggeeee 1111
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))
  69.  
  70.  
  71.  
  72.           iflMultiListIterRev<I,L>(const iflMultiList<I,L>* list)
  73.           iflMultiListIterRev<I,L>(const iflMultiList<I,L>& list)
  74.  
  75.  
  76.      TTTTrrrraaaavvvveeeerrrrssssiiiinnnngggg
  77.  
  78.           I* next()
  79.           I* curr() const
  80.           void reset()
  81.  
  82.  
  83. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  84.      iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr(((())))
  85.  
  86.           iflListIter<I>(const iflList<I>* list)
  87.           iflListIter<I>(const iflList<I>& list)
  88.  
  89.  
  90.           Constructs a forward (head to tail) iterator from a pointer or
  91.           reference to an iflList, given by _l_i_s_t.
  92.  
  93.      iiiiffffllllMMMMuuuullllttttiiiiLLLLiiiissssttttIIIItttteeeerrrr(((())))
  94.  
  95.           iflMultiListIter<I,L>(const iflMultiList<I,L>* list)
  96.           iflMultiListIter<I,L>(const iflMultiList<I,L>& list)
  97.  
  98.  
  99.           Constructs a forward (head to tail) iterator from a pointer or
  100.           reference to an iflMultiList, given by _l_i_s_t.
  101.  
  102.      iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrrRRRReeeevvvv(((())))
  103.  
  104.           iflListIterRev<I>(const iflList<I>* list)
  105.           iflListIterRev<I>(const iflList<I>& list)
  106.  
  107.  
  108.           Constructs a reverse (tail to head) iterator from a pointer or
  109.           reference to an iflList, given by _l_i_s_t.
  110.  
  111.      iiiiffffllllMMMMuuuullllttttiiiiLLLLiiiissssttttIIIItttteeeerrrrRRRReeeevvvv(((())))
  112.  
  113.           iflMultiListIterRev<I,L>(const iflMultiList<I,L>* list)
  114.           iflMultiListIterRev<I,L>(const iflMultiList<I,L>& list)
  115.  
  116.  
  117.           Constructs a reverse (tail to head) iterator from a pointer or
  118.           reference to an iflMultiList, given by _l_i_s_t.
  119.  
  120.      ccccuuuurrrrrrrr(((())))
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                                                         PPPPaaaaggggeeee 2222
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134. iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllLLLLiiiissssttttIIIItttteeeerrrr((((3333))))
  135.  
  136.  
  137.  
  138.           I* curr() const
  139.  
  140.  
  141.           Returns the current element of the iteration; this is the same value
  142.           as that last returned from nnnneeeexxxxtttt().
  143.  
  144.      nnnneeeexxxxtttt(((())))
  145.  
  146.           I* next()
  147.  
  148.  
  149.           Returns the next sequential element (the direction depends on the
  150.           type of iterator), or NULL if the end of the list has been reached.
  151.           The iterator is designed in such a way that it is safe to remove the
  152.           current item while traversing a list; no items will be skipped or
  153.           revisited.
  154.  
  155.      rrrreeeesssseeeetttt(((())))
  156.  
  157.           void reset()
  158.  
  159.  
  160.           Resets the iterator to start from the first element again.
  161.  
  162. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  163.      iflListItem, iflList, iflMultiList
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.                                                                         PPPPaaaaggggeeee 3333
  194.  
  195.  
  196.  
  197.